#!/bin/bash

# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

#
# ZooKeeper
#
# chkconfig: 2345 89 9
# description: zookeeper

# Source function library.
if [ -f /etc/init.d/functions ]; then
  . /etc/init.d/functions
elif [ -f /etc/rc.d/init.d/functions ] ; then
  . /etc/rc.d/init.d/functions
else
  exit 0
fi

export ZOO_LOG_DIR="{{ zookeeper_datalogdir }}"

RETVAL=0
USER="{{ zookeeper_user }}"
CONF="{{ zookeeper_dir }}/zoo.cfg"
PIDFILE="{{ zookeeper_datadir }}/zookeeper_server.pid"
LOCKFILE="/var/lock/subsys/{{ zookeeper_name }}"
DAEMON="{{ software_install_path }}/zookeeper/bin/zkServer.sh"
desc="ZooKeeper daemon"

start() {
  echo -n $"Starting $desc (zookeeper): "
  daemon --user $USER $DAEMON start $CONF
  RETVAL=$?
  echo
  [ $RETVAL -eq 0 ] && touch $LOCKFILE
  return $RETVAL
}

stop() {
  echo -n $"Stopping $desc (zookeeper): "
  daemon --user $USER $DAEMON stop $CONF
  RETVAL=$?
  sleep 5
  echo
  [ $RETVAL -eq 0 ] && rm -f $LOCKFILE $PIDFILE
}

restart() {
  stop
  start
}

sstatus(){
  $DAEMON status $CONF
}

checkstatus(){
  status -p $PIDFILE $desc
  RETVAL=$?
}

condrestart(){
  [ -e "$LOCKFILE" ] && restart || :
}

case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  status)
    checkstatus
    ;;
  sstatus)
    sstatus
    ;;
  restart)
    restart
    ;;
  condrestart)
    condrestart
    ;;
  *)
    echo $"Usage: $0 {start|stop|status|sstatus|restart|condrestart}"
    exit 1
esac

exit $RETVAL
